package com.itedge.infrastructure.service.task;

/**
 * Interface for tasks processing services, with operations such as completing the task with given task data.
 * 
 * @author jhe
 *
 * @param <T>
 * @param <O>
 */
public interface ITaskService<T,O> {
	
	/**
	 * Completes task with given taskId and task data object, with additional informations as linkedObject and user.
	 * 
	 * @param taskId
	 * @param linkedObject
	 * @param taskData
	 * @param user
	 */
	public void completeTask(String taskId, O linkedObject, T taskData, String user);

}
